Course Outline
Exception Handling
- ARM modes
- Names
- Registers
- Permissions
- Exceptions
- Exception types
- Mapping to modes
- Step by step transition from mode to mode
- Using MSR and MRS
- Handling exceptions
- Setting up vectors
- Setting mode stacks
- Current context
- Saving context
- Working with a stack
- Stack direction
- Changing stack pointer
- Especially assembly symbols
- Load and Store multiples
- Homework
Introduction to uCOS
- uCOS intro
- Overview
- Startup
- Stacks
- Tasks
- Starting a tasks
uCOS Tasks
- uCOS Task details
- Task states
- Creating
- Deleting
- Query
- Resuming
- Task control blocks
- Timer delays
Synchronization - Part 1
- Basic concept
- Task cooperation
- Sharing data
- Causes and prevention of data corruption
- Critical sections
- Semaphores
- Patterns 1
- Homework
Synchronization - Part 2
- Deadlocks
- Priority Inversions
- Mutexes
- Mailboxes
- Queues
- Flags
- Pattern 2
Memory Managment
- Stacks
- Fast
- Builtin support
- Part of C language
- Automatic reclaiming
- Short lifespan
- Should not be shared beyond lifespan of the caller
- Heaps
- Long life span
- Requires management code
- Slower
- Fragmentation issues
- Very flexible
- Can be shared between tasks
- Memory partioner
- Long life span
- Light weight
- Fast
- Needs to be setup ahead of time
- Can be shared
Drivers
- Purpose
- Interface conventions
- Setup
- Usage
- Examples
Music Player Project
- Objective
- Top down
- Project
Large operating systems
- Intro to virtual memory
- Translation lookaside buffer
- Process and threads
- User vs kernel space
Final